home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d10 / pitstop.arc / ONEROUTE.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1991-06-01  |  2.4 KB  |  99 lines

  1. 1  'Multiple route subroutine for PitStop America
  2. 2  'Version 1.1 developed by FutureWave Shareware
  3. 3  'Programmed by M. Broughton Boone
  4. 4  ' A Shareware Program
  5. 10  DIM C$(100):DIM S$(100): DIM MA(100): DIM M(100): DIM MN(100): DIM RC$(100): DIM RS$(100): DIM RHI(100): DIM RMA(100)
  6. 100  OPEN "I",#1,"carry.dat"
  7. 110  INPUT #1,CD$,SD$,DC$,DS$,DAY,SM,ED,ML,T,HT,TM,DM,CM
  8. 120  CLOSE #1
  9. 130  IH = HT
  10. 140  CS$ = CD$: SS$ = SD$
  11. 150  'One route program
  12. 160  'Var
  13. 170  'Var
  14. 180  'Open Highway File
  15. 190  OPEN "I",#1,"interste.dat"
  16. 200  I = 1
  17. 210  WHILE NOT EOF(1)
  18. 220   INPUT #1,H,C$,S$,MA,M,MN
  19. 230   IF H = IH THEN C$(I) = C$: S$(I) = S$: MA(I) = MA: M(I) = M: MN(I) = MN: I = I+1
  20. 240  WEND
  21. 250  CLOSE #1
  22. 260  FOR X = 1 TO I
  23. 270  IF C$(X)=CS$ AND S$(X) = SS$ THEN GOSUB 890
  24. 280  IF C$(X)=DC$ AND S$(X) = DS$ THEN GOSUB 900
  25. 290  NEXT X
  26. 300  OPEN "I",#1,"intrstrc.dat"
  27. 310  J = 1
  28. 320  WHILE NOT EOF(1)
  29. 330   INPUT #1,H,RC$,RS$,RHI,RMA
  30. 340   IF H = IH THEN RC$(J) = RC$: RS$(J) = RS$: RHI(J) = RHI: RMA(J) = RMA: J = J+1
  31. 350  WEND
  32. 360  CLOSE #1
  33. 370  'Determine inital segment data
  34. 380  OPEN "I",#1,"Driving.dat"
  35. 390  INPUT #1,AS,HD,AT$,MD,AT
  36. 400  CLOSE #1
  37. 410  OPEN "I",#1,"Refuel.dat"
  38. 420  INPUT #1,TC,MPG,B$,MT
  39. 430  CLOSE #1
  40. 440  'Mileage info
  41. 450  'Var
  42. 460  'var
  43. 470  SM = D-S: IF SM < 0 THEN F=-1 ELSE F = 1
  44. 480  SM = ABS(SM): TM = TM+SM
  45. 490  ML = MT: CM = 0
  46. 500  'Refuel?
  47. 510  J = SI+F
  48. 520  CM = CM + M(J): ML = ML - M(J)
  49. 530  IF ML < MN(J) THEN GOSUB 570
  50. 540  IF J = DI THEN 630
  51. 550  J = J+F
  52. 560  GOTO 520
  53. 570  'Refuel
  54. 580  OPEN "A",#1,"Fuel.dat"
  55. 590  WRITE #1,C$(J),S$(J),CM
  56. 600  CLOSE #1
  57. 610  T = T+1: CM = 0: ML = MT
  58. 620  RETURN
  59. 630  'Sleep Subroutine
  60. 640  J = SI + F: DM = MD
  61. 650  DM = DM - M(J): ED = ED + M(J)
  62. 660  IF MN(J) > DM THEN GOSUB 690
  63. 670  J = J+F: IF J = DI THEN 770
  64. 680  GOTO 650
  65. 690  'Sleep
  66. 700  TR = ED/AS: 'todays hours (TR)
  67. 710  TR$ = STR$(TR): TR$ = LEFT$(TR$,4): TR = VAL(TR$)
  68. 720  OPEN "A",#1,"Sleep.dat"
  69. 730  WRITE #1,DAY,TR,C$(J),S$(J),ED
  70. 740  CLOSE #1
  71. 750  DM = MD: ED = 0: DAY = DAY+1
  72. 760  RETURN
  73. 770  'Route information
  74. 780  HF = IH: HT = IH
  75. 790  OPEN "A",#1,"Route.dat"
  76. 800  WRITE #1,CS$,SS$,DC$,DS$,HF,HT,SM
  77. 810  CLOSE #1
  78. 820  'Carryover Information
  79. 830  OPEN "Carry.dat" FOR OUTPUT AS #1
  80. 840  WRITE #1,CD$,SD$,DC$,DS$,DAY,SM,ED,ML,T,HT,TM,DM,CM
  81. 850  CLOSE #1
  82. 860  'Goto main program
  83. 870  CHAIN "PitStop",200
  84. 880  'Housekeeping
  85. 890  SI = X: S = MA(X): K = 1: RETURN
  86. 900  DI = X: D = MA(X): RETURN
  87. 910  OPEN "I",#1,"interste.dat"
  88. 920  I = 1
  89. 930  WHILE NOT EOF(1)
  90. 940   INPUT #1,H,C$,S$,MA,M,MN
  91. 950   IF H = IH THEN C$(I) = C$: S$(I) = S$: MA(I) = MA: M(I) = M: MN(I) = MN: I = I+1
  92. 960  WEND
  93. 970  CLOSE #1
  94. 980  FOR X = 1 TO I
  95. 990  IF CD$ = C$(X) AND SD$ = S$(X) THEN DI = X: D = MA(X)
  96. 1000  IF CD$ = C$(X) AND SD$ = S$(X) THEN D = MA(X)
  97. 1010  NEXT X
  98. 1020  RETURN
  99.